/****************************************************************
 * I am the AC 130 vs Pirate game. I allow the user to control an 
 * AC130 gunship in the hunt for Modern day pirates. The player  
 * will be allowed to roam free across a section of ocean/coastline.  
 * In the water there will be four types of vessels: Merchant  
 * ships that the player must protect, Pirate ships that the player  
 * must identify and destroy, Fishing boats that look like Pirate  
 * ships that the player must not destroy, and Friendly Navy ships  
 * that can capture pirates for extra points. Time permitting there  
 * may also be ground targets to attack. 
 *
 * Key elements of this project will be the Player/AC130, the Ships,  
 * the ShipAI system, the collision grid, the debris controller, the  
 * Ground/Water, Clouds, and scoring system. This project will make  
 * use of an external text file to store useful game parameters,  
 * thus allowing us to play balance the game without recompiling  
 * the executable. 
 *****************************************************************
 * I am the Base screen class. I provide a default template for a 
 * screen of the game. I have functions that recieve data from the 
 * ScreenCtrl class. I also have a pointer to the game data class
 * this will allow me to share data with other screens, as well as 
 * access game data information.
 *****************************************************************/

#include "GameData.h"
#include <string.h>
#include <allegro.h>

#ifndef __BASE_SCREEN_H__
#define __BASE_SCREEN_H__



class BaseScreen {
public:
	GameData * gd;	// external state referance
	// enumerated value indicating which screen we realy are
	tpScreenType myScreenType;	
	
public:
	BaseScreen();
	~BaseScreen();
		// used on startup to copy exState to local state pointer
	void Init(GameData *gd);

	virtual void OnStart();	// run when screen is made active
	virtual void OnClose();	// run before another screen is made active

	virtual void OnMouseDn(int mouseX, int mouseY, int bt);
	virtual void OnMouseUp(int mouseX, int mouseY, int bt);

	virtual void OnKeyDn(int keyCode);
	virtual void OnKeyUp(int keyCode);

	virtual void Update();	// run on constant time interval 60 millisecconds
	virtual void Draw(BITMAP * scr);	// run prior to back buffer blit.


};

#endif